# 1、使用messages实现单轮对话

#1.导入依赖
import os
from dashscope import Generation
# 自定义工具
mytools=[
    # 工具1: 提供天气的信息
    {
        "type": "function",
        "function":{
            "name": "demo1func",
            "description": "当你想知道今天的天气信息",
        }
    }
]
def demo1func():
    return "今天天气晴朗,20度"

# 2.构建发送的内容,json格式中要指定两个信息，一个是角色 一个是内容
msgs=[
    {'role':'user','content':'今天天气怎么样'}
]

# 3.调用大模型
resp=Generation.call(
     api_key=os.getenv("DASH_SCOPE_API_KEY"),
     model="qwen-plus",
     messages=msgs,
     tools=mytools,
     result_format="message"
 )
#print(resp.output.choices[0].message.tool_calls[0])
msgs.append(resp.output.choices[0].message)
if "tool_calls" in resp.output.choices[0].message:
    #需要调用工具
        # 1.获取工具的名字
    toolname=resp.output.choices[0].message.tool_calls[0]['function']['name']
    if toolname == "demo1func":
        # 2.发送第二次请求给大模型，添加要调用工具
        tool_info={"name":"demo1func","role":'tool',"content":demo1func()}
        msgs.append(tool_info)
        #print(msgs)
        result= Generation.call(
            api_key=os.getenv("DASH_SCOPE_API_KEY"),
            model="qwen-plus",
            messages=msgs,
            tools=mytools,
            result_format="message"
        )
        print(result.output.choices[0].message.content)
else:
    print(resp.output.choices[0].message.content)